package modelo.pista;

import java.io.File;

import org.dom4j.DocumentException;

import modelo.policia.grado.Grado;
import modelo.pista.LectorPistasXML;
//import modelo.pista.LectorDePistasTrucho;
import modelo.pista.FuenteDePistas;

public class PistaFactory {

	private static PistaFactory instancia = null;
	private FuenteDePistas fuenteDeDatos = LectorPistasXML.obtenerInstancia();
	private String nombreDelArchivo = "pistas.xml";
	
	public Pista CrearPistaValida(Grado grado,String tipoDeLugarPreguntable, String proximaCiudad) throws DocumentException {
		Pista pista = new Pista("");
		pista.setearCategoriaDeLaPista(grado);
		pista.setearTextoDeLaPista((fuenteDeDatos.obtenerPista(new File(nombreDelArchivo),proximaCiudad,pista.obtenerCategoriaDeLaPista().name(),tipoDeLugarPreguntable)).obtenerTextoDeLaPista()+".");
		return pista;
    }
      
    public Pista crearPistaInvalida() throws DocumentException{
    	Pista pista = new Pista("");
		pista.setearPistaComoInvalida();
		pista.setearTextoDeLaPista((fuenteDeDatos.obtenerPista(new File(nombreDelArchivo),"Default",pista.obtenerCategoriaDeLaPista().name(),"Default")).obtenerTextoDeLaPista());
		return pista;
    }
    
    public Pista crearPistaCercana() throws DocumentException{
    	Pista pista = new Pista("");
		pista.setearPistaComoCercana();
		pista.setearTextoDeLaPista((fuenteDeDatos.obtenerPista(new File(nombreDelArchivo),"Default",pista.obtenerCategoriaDeLaPista().name(),"Default")).obtenerTextoDeLaPista());
		return pista;
    }
    
	private synchronized static void crearInstancia(){
		if (instancia == null ) {
			instancia = new PistaFactory();
		}
	}
	public static PistaFactory obtenerInstancia(){
		if (instancia == null){
			crearInstancia();
		}
		return instancia;
	}
	public static void borrarInstancia(){
		instancia = null;
	}
}